<html>
<body>

<h3>函数功能</h3>该函数用于确定函数被调用时，相应按键是处于按下状态，还是处于弹起状态；并且按下此键前否调用过GetAsyncKeystate函数。<br>
<h3>函数原型</h3>SHORT GetAyncKeystate（int vKey）；<br>
<h3>参数</h3>
vKey:定义虚拟键码（若有256个虚拟键码）。欲获得更多信息，参看Virtual_Key Codes。在Windows NT中可以使用左右键区分常量来定义某些键。欲获得更多信息，参看备注部分。<br>
<h3>返回值</h3>若函数调用成功，返回值给出了自最后一次调用GetAsyncKeyStat。以来，指定的键是否处于按下状态，并且确定了该键目前是按下或是被弹起。若最高位被置为1，则键被接下：若最低位被置为1，则该键在前次调用GetAsyncKeystate以来处于被接下的状态。若另一进程或线程中的窗口拥有键盘焦点，则<br>
返回值为零。<br>
Windows 95：Windows 95不支持左右键区分常量，若用这些常量调用GetAsyncKeystate函数，则返回值为零。<br>
备注：该函数支持鼠标按钮，但是，它检查的不是物理按钮映射到的逻辑按钮的状态，而实际物理按钮的状态。例如，函数调用GetAsyncKeystate（VK_LBUTTON）总是返回物理的鼠标左按钮的状态，而不管该按钮映射为逻辑上的左按钮，可以调用GetsystemMetrics（SM_SWAPBUTON）来确定系统当前物理鼠标按钮与逻辑鼠标按钮的对应关系，当鼠标按钮被左右交换后，函数返回TRUE。<br>
可以使用虚拟键码常数VD_SHIFT，VK_CONTROL，VK_MENU作为vKey参数的值，这样给出Shift Ctrl，AIt键的状态，而不区分是左键还是右键。<br>
Windows NT：可以使用如下的虚拟键码常数作为vKey的值来区分左右键的情况：<br>
VK_LSHIFT VK_RSHIFT;VW_LCONTROL VK_RCONTROL；VK_LMENU VK_RMENU<br>
这些可区分的左右键常量仅当调用GetKeyboardState，SetKeyboardstate，GetAsyncKeyState，GetKeyState和MaPViruaIKey函数时才可用。<br>
Windows CE：GetAsyncKeyState函数支持左右虚键常量，所以定义按下左键还是右键。这些常数是VKLSHIFT，VK_RSHIFT，VK_LCONTROL，VK_RCONTROL，VK_LMENU和VK_RMENU。<br>
在WindowsCE中返回值的最低位是无效的，应当忽略。<br>
GetAsyncKeystate将返回当前键的状态，即使是另一进程或线程中的窗口拥有键盘焦点。<br>
可以使用VK_LBUTTON虚拟键码常量来确定触模屏上笔尖的状态（按下/弹起）。<br>
<h3>速查</h3>Windows NT：3.1及以上版本：Windows：95及以上版本：Windows CE：1.O及以上版本；头文件：winuser.h；库文件：user32.lib。<br>

</body>
</html>
